import java.util.Scanner;
public class Main{
    static int[] s;
    static int n;
    static int f;
    static int [][]cnt=new int[26][26];        
    static boolean[][] judge = new boolean[26][26];
    public static void main(String []args){
        Scanner sc = new Scanner(System.in);
        n=sc.nextInt();
        s=new int[n];
        f=sc.nextInt();
        sc.nextLine();//用来 消耗掉前面的换行符 不要忘记!!!
        //先获得一个字符串
        String str=sc.nextLine();
        //将字符串中的每一个字符转为数字
        for(int i=0;i<n;i++){
            s[i]=str.charAt(i)-'a';
        }
        //统计各个ABB形式出现的次数：用对应的AB数组去计数
        Update(0,n-1,1);
        
        
        //考虑字符错误情况
        for(int i=0;i<n;i++){
            int temp=s[i];
            for(int j=0;j<26;j++){
                //将某一个位置关联的字符串出现次数减1
                Update(i-2,i+2,-1);
                if(temp!=j){
                    s[i]=j;
                    // 新的加1
                    Update(i-2,i+2,1);
                    //恢复旧的：先新的减1
                    Update(i-2,i+2,-1);
                }
                //然后把当前位变回去
                s[i]=temp;
                //再旧的加1
                Update(i-2,i+2,1);
            }
        }
        int ans=0;
        for(int i=0;i<26;i++){
            for(int j=0;j<26;j++){
                if(judge[i][j])
                    ans++;
            }
        }
        System.out.println(ans);
        for(int i=0;i<26;i++){
            for(int j=0;j<26;j++){
                if(judge[i][j]){
                    char A=(char)(i+'a');
                    char B=(char)(j+'a');
                    String st=""+A+B+B;
                    System.out.println(st);
                }
            }
        }
    }
    
    public static void Update(int l,int r,int v){
        //考虑l和r的大小
        l=Math.max(l,0);
        r=Math.min(r,n-1);
        for(int i=l;i<=r-2;i++){
            int a=s[i];
            int b=s[i+1];
            int c=s[i+2];
            if(a!=b&&b==c){
                cnt[a][b]+=v;
                if(cnt[a][b]>=f)
                    judge[a][b]=true;
            }
        }
    }
}